/**
 * 补发单管理相关js文件
 */
var stockCheckList; // dataTable
var quickSearchText = "";

/**
 * 页面初期化
 */
$(document).ready(function() {
    setPageElementStatus("stockCheckList");

    quickSearchText = $("#quickSearch").val();
	/**
	 * 初始化列表
	 */
	getList("");
	getStorList();// 获取仓库列表

    // 店铺导出关闭事件发生
    $('#exportList').on('hide.bs.modal', function () {
        // 父窗体归还本页的编辑对话框
        window.top.window.returnCustomModalDialog();
    })

    // 店铺导出，导出按钮点击事件绑定
    $("#btnExportList").click(function(){
        exportStock();
    });

    // 店铺导出关闭事件发生
    $('#exportList').on('shown.bs.modal', function () {
        // 父窗体归还本页的编辑对话框
        window.top.window.$("#select-all").click();
    })


});
// 初始化库存单表格（默认待审核）
function getList(storId) {

	stockCheckList = $("#stockCheckList").DataTable({
	    "processing" : true,
        "serverSide" : true,
        "lengthMenu" : [ [ 10, 25, 50, 100, 500, 1000 ], [ 10, 25, 50, 100, 500, 1000] ],
        "dom" : '<"bottom"rtflp>',
        "searching" : false,
        "scrollX" : true,
        "scrollY":"410px",
        "scrollCollapse" : true,
        "pagingType" : "full_numbers",
        "deferRender" : true,
	    "ajax" : {
	        "url" : "/stock/getStockInfo.action",//
	        "data" : function(d) {
		        d.quickSearch = encodeURI(quickSearchText);
		        d.storId = storId;
	        }
	    },
	    "tableTools" : {
		    "sRowSelect" : "bootstrap"
	    },
	    "columnDefs" : [{
	        	"className" : "truncate-text tooltip-column-detail text-left",
	            "targets" : [ 0 ]
	        },{
        	"className" : "truncate-text tooltip-column-detail text-left",
            "targets" : [ 1 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-left",
            "targets" : [ 2 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-left",
            "targets" : [ 3 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-left",
            "targets" : [ 4 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 5 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 6 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 7 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 8 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 9 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 10 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 11 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 12 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 13 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 14 ]
        },{
        	"className" : "truncate-text tooltip-column-detail text-right",
            "targets" : [ 15 ]
        } ],
	    "columns" : [ {
	        "data" : "storName",
	        "orderable" : true
	    }, {
	        "data" : "goodsCode",
	        "orderable" : true
	    }, {
	        "data" : "goodsName",
	        "orderable" : true,
	    }, {
	        "data" : "skuCode",
	        "orderable" : true,
	    }, {
	        "data" : "skuName",
	        "orderable" : true
	    }, {
	        "data" : "available",
	        "orderable" : true
	    }, {
	        "data" : "canallotQty",
	        "orderable" : true
	    }, {
	        "data" : "junkCanallotQty",
	        "orderable" : true
	    }, {
	        "data" : "stockQty",
	        "orderable" : true
	    }, {
	        "data" : "junkQty",
	        "orderable" : true
	    }, {
		    "data" : "allotQty"
	    }, {
	        "data" : "unallotQty",
	        "orderable" : true
	    }, {
	        "data" : "reserveQty",
	        "orderable" : true
	    }, {
	        "data" : "freezeQty",
	        "orderable" : true
	    }, {
	        "data" : "onwayQty",
	        "orderable" : true
	    }, {
	        "data" : "logicStockoutQty",
	        "orderable" : true
	    } ],
	    "order" : [ [ 0, "asc" ],[ 1, "asc" ] ],
        "footerCallback": function (tfoot, data, start, end, display) {
            var api = this.api();
            $( api.column( 5 ).footer() ).html(
                api.column( 5 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 6 ).footer() ).html(
                api.column( 6 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 7 ).footer() ).html(
                api.column( 7 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 8 ).footer() ).html(
                api.column( 8 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 9 ).footer() ).html(
                api.column( 9 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 10 ).footer() ).html(
                api.column( 10 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 11 ).footer() ).html(
                api.column( 11 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 12 ).footer() ).html(
                api.column( 12 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 13 ).footer() ).html(
                api.column( 13 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 14 ).footer() ).html(
                api.column( 14 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
            $( api.column( 15 ).footer() ).html(
                api.column( 15 ).data().reduce( function ( a, b ) {
                    return a + b;
                }, 0 )
            );
        },
	});
	$("#stockCheckList").tooltip({
        selector: ".tooltip-column-detail",
        container: "body",
        title: function() {
            if ($(this)[0].scrollWidth > $(this).outerWidth()) {
                return $(this).text();
            }
        }
    });
};

// 获取仓库列表
function getStorList() {
	// 获取仓库列表的请求
	$.ajax({
	    type : "GET",
	    url : "/stock/getStor.action",
	    contentType : "application/json;charset=utf-8",
	    dataType : "json",
	    async : false,// 同步
	    success : function(data) {
		    if (data.result == "success") {
			    $("#storId option").remove();
			    $("#storId").append("<option value=''>请选择</option>");
			    $("#storId").append("<option value='all'>全部</option>");
			    $.each(data.data, function(n, value) {
				    $('#storId').append("<option value='" + value.storId + "'>" + value.storName + "</option>");
			    });
		    } else {
			    window.top.window.showModalAlert(data.msg);
		    }
	    },
	    error : function(XMLHttpRequest, textStatus) {
		    if (XMLHttpRequest.status == 500) {
			    var result = eval("(" + XMLHttpRequest.responseText + ")");
			    alert(result.errorObject.errorText);
		    }
	    }
	});
}
// 清空table数据重新初始化
function clearDataTable() {
	var dttable;
	if ($('#stockCheckList').hasClass('dataTable')) {
		dttable = $('#stockCheckList').dataTable();
		dttable.fnDestroy(); // 还原初始化了的datatable
		dttable.fnClearTable(); // 清空一下table
	}
}

$("#storId").change(function() {
	var id = $(this).children('option:selected').val();
	// console.log(id);
	clearDataTable();
	getList(id);
})
$("#btnQuickSearch").on('click', function() {
	quickSearchText = $("#quickSearch").val();
	var id = $("#storId").children('option:selected').val();
	clearDataTable();
	getList(id);
})
/**
 * 搜索框的回车事件
 */ 
$('#quickSearch').keydown(function(e){
    if(e.keyCode==13){
        $("#btnQuickSearch").click();
    }
});

var tableColNm=[];		//画面table的头的项目名称
var tableColVal=[];		//画面table的头的项目名称对应的英文字段

function showExportStock() {
    if ($("#storId").val()!=null && $("#storId").val()!="" && $("#storId").val()!=undefined ){
        tableColNm=new Array();
        tableColVal=new Array();

        $("#public-methods").html('');
        $("#public-methods").append('<option value="storName">仓库名称</option>');
        $("#public-methods").append('<option value="goodsCode">商品商家编码</option>');
        $("#public-methods").append('<option value="goodsName">商品名称</option>');
        $("#public-methods").append('<option value="skuCode">规格商家编码</option>');
        $("#public-methods").append('<option value="skuName">规格名称</option>');
        $("#public-methods").append('<option value="available">可用数正品</option>');
        $("#public-methods").append('<option value="canallotQty">可分派数正品</option>');
        $("#public-methods").append('<option value="junkCanallotQty">可分派数次品</option>');
        $("#public-methods").append('<option value="stockQty">库存数正品</option>');
        $("#public-methods").append('<option value="junkQty">库存数次品</option>');
        $("#public-methods").append('<option value="allotQty">已分派数</option>');
        $("#public-methods").append('<option value="unallotQty">未分派数</option>');
        $("#public-methods").append('<option value="reserveQty">预留数</option>');
        $("#public-methods").append('<option value="freezeQty">冻结数</option>');
        $("#public-methods").append('<option value="onwayQty">在途数</option>');
        $("#public-methods").append('<option value="logicStockoutQty">逻辑出库数</option>');

        tableColNm.push("仓库名称");
        tableColVal.push("storName");

        tableColNm.push("商品商家编码");
        tableColVal.push("goodsCode");

        tableColNm.push("商品名称");
        tableColVal.push("goodsName");

        tableColNm.push("规格商家编码");
        tableColVal.push("skuCode");

        tableColNm.push("规格名称");
        tableColVal.push("skuName");

        tableColNm.push("可用数正品");
        tableColVal.push("available");

        tableColNm.push("可分派数正品");
        tableColVal.push("canallotQty");

        tableColNm.push("可分派数次品");
        tableColVal.push("junkCanallotQty");

        tableColNm.push("库存数正品");
        tableColVal.push("stockQty");

        tableColNm.push("库存数次品");
        tableColVal.push("junkQty");

        tableColNm.push("已分派数");
        tableColVal.push("allotQty");

        tableColNm.push("未分派数");
        tableColVal.push("unallotQty");

        tableColNm.push("预留数");
        tableColVal.push("reserveQty");

        tableColNm.push("冻结数");
        tableColVal.push("freezeQty");

        tableColNm.push("在途数");
        tableColVal.push("onwayQty");

        tableColNm.push("逻辑出库数");
        tableColVal.push("logicStockoutQty");

        //刷新隐藏的select项目，将新的option显示到画面上
        $("#refresh").click();

        //清空frame的SRC，相当于重置
        $('#exportFrame').attr('src', '');
        var editDialog = window.top.window.borrowCustomModalDialog($("#exportList"));
        editDialog.modal({show:true, backdrop:'static'});

    } else {
        window.top.window.showModalAlert("请选择仓库");
    }

}

function exportStock(){
    var url = "";

    // 父窗体归还本页的编辑对话框
    window.top.window.returnCustomModalDialog();

    //画面中选择的需要导出的项目的名字,对应的英文名字
    var selectColNm=new Array();
    var selectColVal=new Array();
    var colNm;
    //根据画面选择，抽取相应的字段名称，汉字
    $('#ms-public-methods .ms-selectable .ms-list li').each(function(){
        if ($(this).attr('class') && $(this).attr('class').indexOf('ms-selected')>-1){
            colNm = $(this).text();
            $.each(tableColNm,function(key,val){
                if (val == colNm){
                    selectColNm.push(val);
                    selectColVal.push(tableColVal[key]);
                }
            });
        }
    });

    //传递参数
    var colName = encodeURI(encodeURI(selectColNm.join(',')));
    var colValue = encodeURI(encodeURI(selectColVal.join(',')));
    var quickSearch = encodeURI(encodeURI($('#quickSearch').val()));

    //如果没有选择项目，给出提示
    if (colName==''){
        window.top.window.showModalAlert("请选择导出项目。");
        window.top.window.borrowCustomModalDialog($("#exportList"));
        return false;
    }

    var storId = "";
    storId = $("#storId").val();

    $.ajax({
        type: 'GET',
        url: "/stock/exportCheckStock.action?storId="+storId,
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        async: false,//同步
        success: function (data) {
            if (data.result == "success") {
                $('#exportList').modal('hide');
                //导出的URL
                url = "/stock/exportStock.action?colName="+colName+"&colValue="+colValue+"&quickSearch="+quickSearch+"&storId="+storId;
                $('#exportFrame').attr('src', url);
                return true;
            } else {
                window.top.window.showModalAlert(data.msg);
                window.top.window.borrowCustomModalDialog($("#exportList"));
                return false;
            }
        },
        error: function () {
            window.top.window.showModalAlert("导出失败。");
            window.top.window.borrowCustomModalDialog($("#exportList"));
            return false;
        }
    });

}











